package debtbundler.domain.entity;

/**
 * A <code>Payment</code> represents what a person has in reality paid for a 
 * <code>SharedCost</code>. When a person's bundled shares of various costs 
 * are bigger than her bundled payments for the costs, she is indebted to others.
 * 
 * @see Share 
 * @see SharedCost
 * @author Anssi
 */
public interface Payment extends Transaction {

	/** 
	 * The person paying this payment. Equals the 
	 * return value of <code>getFromPool()<code>.
	 * 
	 * @return	the person paying this payment
	 */
	public Person getPerson();
	
	/** 
	 * Returns the shared cost, for example food stuff, gas, etc., 
	 * that this payment belongs to. Equals the 
	 * return value of <code>getToPool()<code>.
	 * 
	 * @return	the shared cost to which this payment belongs to
	 */
	public SharedCost getSharedCost();	

}
